Database security is a serious issue that companies face. It is important that companies ensure that their database(s) is/are protected from unauthorized access since the majority the organization's sensitive information is contained within their database(s). Unauthorized access into the database could be catastrophic to a company. In fact, some companies have a legal obligation to ensure the privacy of their data through various data-privacy regulations in place that companies handling certain types of data must comply with. These regulations include best practice requirements and industry guidelines regarding the usage and access to customer data. Some of the privacy requirements include proper access control, separation of duties, and independent audit functions.
A feature called “database auditing” is often used to observe a database so as to be aware of the actions of database users. Database auditing is often utilized for security purposes, so that the company can ensure that information is not accessed by those without the permission to access it. With database audits, various details are recorded about what users do with the data in the database, such as what users modified certain data, what users viewed certain data, and so on. Database audits are typically applied to a database by the information technology department, and are usually assigned to the database as a whole.
One issue with current database systems has to do with segregation of audit data. With the increasing complexity of database audit requirements from different government and other agencies, it is often difficult to tell for what purpose a given audit requirement was added to the database to fulfill.
On a similar note, many audits may really only need to record a small subset of possible activities on the database server, such as access to a table containing sensitive data such as employee social security numbers. However, most audit systems today either only allow global configuration, i.e. audit all accesses to all tables, or they require programmers to encode what data accesses should be audited—making audit records either overly verbose or difficult to configure.
Another issue with database audits arises when databases need to be moved from one database server instance to another. There are existing techniques for moving databases from one server instance to another. However, with current audit systems, audit configuration metadata stays with the database server instance. This can make it a complex and error-prone operation to move databases that require audits from one server instance to another.